define(function(require, exports){
	var pubjs = require('pubjs');
	var view = require('@base/view');
	var $ = require('jquery');
	var util = require('util');
	var dialog = require('@base/dialog').base;
	var common = require('modules/common');

	var DomainImport = view.widget.extend({
		init: function(config){
			config = pubjs.conf(config, {
				'layout': {
					"module": dialog,
					"title": LANG('导入域名'),
					"silence": false,
					"buttonConfig": {
						"ok": {
							"value": LANG('确定')
						}
					},
					'size': 'm'
				},
				'vModel': {
					'domain': ''
				}
			});

			this.Super('init', arguments);
		}
		,afterBuild: function(){
			var self = this;
			var el = self.getDOM();

			el.append($([
				'<div class="M-formConGroup">',
					'<label class="group-label">' + LANG('请输入域名：') + '</label>',
					'<div class="group-content">',
						'<textarea v-model="domain" rows="10" cols="70" placeholder="'+ LANG('以http://或https://开头，输入多个时，换行隔开。') +'"/>',
					'</div>',
				'</div>'
			].join('')));

			self.vm.mount();
		}
		,getValue: function(){
			var vm = this.vm.$;
			var cs = this.$;
			var domain = [];
			var value = vm.domain.replace(/^\n+|\n+$/g, '').split('\n');

			value.forEach(function(item){
				var trimItem = util.trim(item);
				if (trimItem) {
					domain.push({'Content': trimItem});
				}
			});

			return domain;
		}
		// ,setValue: function(data){
		// 	var vm = this.vm.$;
		// 	var cs = this.$;
		// 	vm.domain = data.ids.join('\n') || '';

		// 	return this;
		// }
		,validate: function(data){

			if (!data.length) {
				pubjs.alert(LANG('请输入域名！'));
				return false;
			}

			var error = false;
			var hasOther = false;
			util.each(data, function(item){
				if(item && !common.isUrl(item.Content)){
					error = true;
				}
				// if(item){
				// 	var arr = item.split('://');
				// 	var link = arr.length >= 2 ? arr[1] : arr[0];
				// 	var len = link.split('/').length;
				// 	var len2 = link.split('?').length;
				// 	if(len >= 2 || len2 >= 2){
				// 		hasOther = true;
				// 	}
				// }
			});

			if(error){
				pubjs.alert(LANG('请填写正确的域名'));
				return false;
			}

			return true;
		}
		,onDialogOk: function(){
			var self = this;
			var data = self.getValue();
			var saveUrl = this.getConfig('saveUrl');
			if (self.validate(data)) {
				this.fire('adImportOk', data);
				this.hide();
			}
			return false;
		}
		,reset: function(){
			this.vm.reset();
			return this;
		}
	});

	exports.domainImport = DomainImport;

	var AppidImport = view.widget.extend({
		init: function(config){
			config = pubjs.conf(config, {
				'layout': {
					"module": dialog,
					"title": LANG('导入APPID'),
					"silence": false,
					"buttonConfig": {
						"ok": {
							"value": LANG('确定')
						}
					},
					'size': 'm'
				},
				'vModel': {
					appid: ''
				}
			});

			this.Super('init', arguments);
		}
		,afterBuild: function(){
			var self = this;
			var el = self.getDOM();

			el.append($([
				'<div class="M-formConGroup">',
					'<label class="group-label">' + LANG('请输入APPID：') + '</label>',
					'<div class="group-content">',
						'<textarea v-model="appid" rows="10" cols="70" placeholder="'+ LANG('输入多个时，换行隔开。') +'"/>',
					'</div>',
				'</div>'
			].join('')));

			self.vm.mount();
		}
		,getValue: function(){
			var vm = this.vm.$;
			var cs = this.$;
			var appid = [];
			var value = vm.appid.replace(/^\n+|\n+$/g, '').split('\n');

			value.forEach(function(item){
				var trimItem = util.trim(item);
				if (trimItem) {
					appid.push({'Content': trimItem});
				}
			});

			return appid;
		}
		// ,setValue: function(data){
		// 	var vm = this.vm.$;
		// 	var cs = this.$;
		// 	vm.appid = data.ids.join('\n') || '';

		// 	return this;
		// }
		,validate: function(data){
			if (!data.length) {
				pubjs.alert(LANG('请输入APPID！'));
				return false;
			}
			return true;
		}
		,onDialogOk: function(){
			var self = this;
			var data = self.getValue();
			var saveUrl = this.getConfig('saveUrl');
			if (self.validate(data)) {
				this.fire('adImportOk', data);
				this.hide();
			}
			return false;
		}
		,reset: function(){
			this.vm.reset();
			return this;
		}
	});

	exports.appidImport = AppidImport;
});